package 系统复习.面试题.区间集合;

import java.util.Arrays;

/**
 * 给定一个会议时间安排的数组 intervals ，每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ，请你判断一个人是否能够参加这里面的全部会议。
 */
public class L252 {

    public boolean canAttendMeetings(int[][] intervals) {

        int[] ints = new int[1000000];
        for (int i = 0; i < intervals.length; i++) {
            for (int j = intervals[i][0]; j < intervals[i][1]; j++) {
                if (ints[j] == 1) return false;
                ints[j] = 1;
            }
        }
        return true;
    }

    // 排序
    public boolean canAttendMeetings1(int[][] intervals) {
        Arrays.sort(intervals, (a, b) -> Integer.compare(a[0], b[0]));
        for (int i = 0; i < intervals.length - 1; i++) {
            if (intervals[i][1] > intervals[i + 1][0]) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        L252 l252 = new L252();
        System.out.println(l252.canAttendMeetings(new int[][]{{0, 30}, {5, 10}, {15, 20}}));
    }
}
